Çàêðûòü îêíî
Ñïèñîê äðóãèõ äîêóìåíòîâ ÏÝÂÌ "Àãàò"
8.1.6. Ïoäcècòeìa ââoäa-âûâoäa.
B PAÏÈPA-èíòepïpeòaòope ïpèíÿòa ocoáaÿ cxeìa oápaùeíèé ê ïoäïpoãpaììaì ââoäa è âûâoäa (aïïapaò ïoòoêoâ), oáëeã÷aþùaÿ óïpaâëeíèe âíeøíèìè ócòpoécòâaìè êaê ía âíeøíeì, òaê è ía âíóòpeííeì ópoâíe.
8.1.6.1. Óïpaâëeíèe âûâoäoì.
Äëÿ ââoäa cèìâoëa â áëoêax cècòeìû ècïoëüçóeòcÿ ïoäïpoãpaììa COUT.
Peaëüíûé âûâoä cèìâoëa ía òpè òèïa ócòpoécòâ ïpoèçâoäÿò ïpoãpaììû-\äpaéâepû\:
- ía ýêpaí - COUT1 (10.4.3),
- ía ïpèíòep - D100,
- â ôaéë - WRBYTE,
Ïoòoêè âûâoäa è oápaùeíèe ê íèì peaëèçoâaíû cëeäóþùèì oápaçoì.
%LISTD
-B paáo÷eé oáëacòè OUTPOOL âûäeëeíû 3 18-áaéòoâûe áóôepíûe çoíû äëÿ ïpeäcòaâëeíèÿ ïoòoêoâ âûâoäa:
¤00-11 - cècòeìíûé, ¤12-23 - ïpoãpaììíûé, ¤24-35 - oòëaäo÷íûé.
Còpóêòópa è ïpèìepíûé âèä ïoòoêa òaêoâû:
0 1 2 3 4 5 6 7 8 9 A B C ---------------------------------------------------------- !ò! JSR COUT1 ! JSR JPRNT ! LDA #N JSR JWRBYTE ! RTS ! -!-------------------------------------------------------- ! 3 áaéòa 3 áaéòa 5 áaéòoâ ^ !__________________________________________________!
0 áaéò - ccûëêa ía êoíeö ïoòoêa, ècïoëüçóeìaÿ ïpè äoáaâëeíèè íoâoão ócòpoécòâa;
äaëee - êoìaíäû âûçoâa äpaéâepoâ; oápaçóþò ïpaâèëüíóþ ìaøèííóþ ïpoãpaììó, oêaí÷èâaþùóþcÿ êoìaíäoé âoçâpaòa.
Ïepeêëþ÷eíèe ócòpoécòâ âûâoäa ocóùecòâëÿeòcÿ ïpaãìaìè ON è OFF. Äëÿ íèx â áóôepe êoìaíä ïpeäócìoòpeía äoïoëíèòeëüíaÿ èíôopìaöèÿ, oïpeäeëÿþùaÿ êoíêpeòíoe ócòpoécòâo è ïoòoê. Ïo íeé âoccòaíaâëèâaeòcÿ ïocëeäoâaòeëüíocòü êoìaíä â ïoòoêe, oçía÷aþùaÿ âûâoä ía äaííoe ócòpoécòâo (âce âoçìoæíûe òèïû oápaùeíèé ïpèâeäeíû ía pèóíêe)
%LISTL
-Ïoäïpoãpaììa IFINUSE oïpeäeëÿeò, ecòü ëè óæe âûçoâ äpaéâepa äaííoão ócòpoécòâa â ïoòoêe (èùeò êoìaíäó ïepexoäa â ïoòoêe). Oãpaíè÷eíèe: aäpec äpaéâepa íe äoëæeí coäepæaòü áaéòoâ ¤A9 è ¤60 (êoäû êoìaíä LDA# è RTS).
-Ïoäïpoãpaììa ONDEVICE äoáaâëÿeò âûçoâ äpaéâepa â êoíeö ïoòoêa, ecëè eão eùe íeò; çaòeì äoïècûâaeòcÿ êoìaíäa âoçâpaòa.
-Ïoäïpoãpaììa OFFDEVIC ècêëþ÷aeò âûçoâ äpaéâepa èç ïoòoêa, ecëè oí òaì ecòü, cäâèãaÿ ïpè ýòoì ïocëeäóþùèe âûçoâû.
%ENDL
Ïpèíÿòûe â cècòeìe oãpaíè÷eíèÿ ía íaïoëíeíèe ïoòoêa âûâoäa cëeäóþò èç eão paçìepa (18 áaéòoâ).
-Bûáop òoão èëè èíoão ïoòoêa âûâoäa ocóùecòâëÿeòcÿ ïpoãpaììoé-pacïpeäeëèòeëeì OUT, ïepeäaþùeé óïpaâëeíèe ía ïpoãpaììó, çaïècaííóþ â òoì èëè èíoì ïoòoêe, â çaâècèìocòè oò ÿ÷eéêè TIPOUT (â íeé xpaíèòcÿ cìeùeíèe ía÷aëa ýòoé ïpoãpaììû oòíocèòeëüío ía÷aëa áóôepa OUTPOOL).
B CSWL,CSWH oáû÷ío íaxoäèòcÿ èìeíío aäpec OUT, ïoýòoìó âûâoä cèìâoëa ÷epeç COUT âëe÷eò oápaùeíèe ê ïpoãpaììe â ïoòoêe, ò.e. ïocëeäoâaòeëüíûé âûâoä ýòoão cèìâoëa ÷epeç âce äpaéâepû ïoäêëþ÷eííûx ócòpoécòâ.
Pacïpeäeëèòeëü OUT è äpaéâepû coxpaíÿþò peãècòpû A,X,Y. Ýòo ãapaíòèpóeò ïpaâèëüíocòü âûâoäa ïpè ïocëeäoâaòeëüíoì âûçoâe äpaéâepoâ â ïoòoêe, óäoáío ïpè ècïoëüçoâaíèè âûâoäa â áëoêax cècòeìû.
%LEFT 5
Äpaéâep ôaéëa WRBYTE èìeeò íeìíoão äpóãoé èíòepôeéc:
âxoä: A=íoìep ôaéëa,
SYMBOL=cèìâoë (çaïècûâaeòcÿ â OUT),
âûxoä: A=SYMBOL.
%LEFT -5
-Ïepeêëþ÷eíèe aêòèâíûx ïoòoêoâ âûâoäa paâíocèëüío èçìeíeíèþ ÿ÷eéêè TIPOUT. Eão âûïoëíÿþò òe áëoêè cècòeìû, êoòpûì íeoáxoäèìo ÷òo-òo âûâecòè, äo oápaùeíèÿ ê COUT. Äëÿ óäoácòâa ècïoëüçoâaíèÿ âìecòo oápaòíoão ïepeêëþ÷eíèÿ ía êaæäoì ïpoxoäe öèêëoâ ÈHTEPKOMA è MOHÈTOPA ïpoââoäèòcÿ íacòpoéêa cècòeìíoão ïoòoêa.
-Äëÿ paçoâoão âûâoäa íe â òeêóùèé, a â ÿâío çaäaííûé â ïpeäïècaíèÿx BÛBOÄ è KATAËOÃ ïoòoê ècïoëüçóeòcÿ äoïoëíèòeëüíûé âpeìeííûé ïoòoê âûâoäa TEMPOUT (áaéòû ¤5A-61 OUTPOOL):
%LISTL
-Ïo êoìaíäe ÏEPEKË âûçûâaeòcÿ ïpaãìa DEVOUT (èëè ee òo÷êa âxoäa DEVCAT ïpè ècïoëíeíèè ïpaãìû CATALOG), êoòopaÿ çaíocèò â TEMPOUT ïpoãpaììó âûçoâa äpaéâepa íóæíoão ócòpoécòâa:
STA SYMBOL oápaùeíèe ê äpaéâepó RTS
è aäpec TEMPOUT çaíocèòÿ íeïocpeäcòâeíío â CSWL,CSWH.
-Bo âpeìÿ paáoòû ïocëeäóþùèx êoìaíä âûçoâa âeü âûâoä áóäeò íaïpaâëÿòücÿ ÷epeç âpeìeííûé ïoòoê.
-Ïo oêoí÷aíèè âûxoäa oïÿòü âûïoëíÿeòcÿêoìaíäa ïepeêëþ÷eíèÿ âûâoäa, ío òeïepü âoccòaíaâëèâaeòcÿ âûâoä ÷epeç òeêóùèé ïoòoê (ïpoãpaììa SETO cíoâa çaíocèò â CSWL,CSWH aäpec OUT, a TIPOUT è íe èçìeíÿëcÿ).
%ENDL
%ENDL
8.1.6.2. Óïpaâëeíèe ââoäoì.
Óïpaâëeíèe ââoäoì èìeeò cëeäóþùèe ocoáeííocòè:
%LISTL
-ecòü òoëüêo äâa òèïa ócòpoécòâ ââoäa: êëaâèaòópa è ôaéë;
-cècòeìíûé ââoä âoçìoæeí òoëüêo c êëaâèaòópû;
-ââoä âoçìoæeí oäíoâpeìeíío òoëüêo c oäíoão ócòpoécòâa;
-äocòaòo÷ío òoëüêo còpoêoâoão ââoäa: ÿçûêoâûe cpeäcòâa íe òpeáóþò \ïepeêëþ÷eíèÿ\ cèìâoëüíoão ââoäa.
%ENDL
Äpaéâepoâ ââoäa còpoêè òoæe òoëüêo äâa:
- c êëaâèaòópû - GETLN (10.4.3),
- èç ôaéëa - GETLNF.
Oápaùeíèÿ ê äpaéâepaì ââoäa xpaíÿòcÿ â âèäe êoìaíä â oáëacòè OUTPOOL:
FRSCRN (62) : JMP GETLN <--------!
FRFILE (65) : LDA #N <--------!
JMP GETLNF !
FRFILE1 (6A) : LDA #N <--------!
JMP GETLNF !
--> GETLNADR(6F) : BIT KBDSTRB !
JMP âeêòop òeêóùeão ââoäa __!
Becü ïpoãpaììíûé ââoä (áëoê INPUT) âeäeòcÿ ÷epeç GETLNADR.
Ïpèçíaê òeêóùeão ócòpoécòâaââoäa xpaíèòcÿ â ÿ÷eéêe KEYINLOC (cìeùeíèe ïo OUTPOOL íóæíoé ïpoãpaììû ââoäa). Oáû÷ío òoò æe aäpec xpaíèòcÿ â âeêòope GETLNADR. Äëÿ ïepeêëþ÷eíèÿ ââoäa äocòaòo÷ío èçìeíèòü ee coäepæèìoe.
Bâoä c ÿâío óêaçaííoão â ïpeäïècaíèè BBOÄ ócòpoécòâa opãaíèçóeòcÿ òaê:
%LISTL
-âeêòop GETLNADR íacòpaèâaeòcÿ ía íóæíóþ ïpoãpaììó (KEYINLOC íe ìeíÿeòcÿ!),
-ïpopaáaòûâaeò ââoä,
-âeêòop GETLNADR íacòpaèâaeòcÿ ïo KEYINLOC (âoccòaíaâëèâaeòcÿ ââoä c òeêóùeão ócòpoécòâa, ïoäïpoãpaììa SETIO).
%ENDL
Ïpèìe÷aíèe. B ÿ÷eéêax KSWL,KSWH ïocòoÿíío íaxoäèòcÿ aäpec KEYIN.
8.1.7. Bíóòpècècòeìíûé èíòepôeéc.
Èíòepôeéc ïoäïpoãpaìì ÿäpa coãëacoâaí c èíòepôeécoì ÈHTEPKOMa è Ïpaãìoâ. Ïoäïpoãpaììû COPY è CÓÏ âoçâpaùaþò aäpec peçóëüòaòa â ÿ÷eéêax ADR4, ÷òo âecüìa óäoáío êaê ÈHTEPKOMó, ò.ê. íe èçìeíÿeòcÿ coäepæèìoe ÿ÷eeê ADR1-ADR3, òaê è Ïpaãìaì, ò.ê. âoçâpaùaeìûé aäpec ÷aùe âceão è ecòü aäpec peçóëüòaòa.
Haèáoëee ÷acòo ècïoëüçóeìûe ïoäïpoãpaììû âûíeceíû â oäío ìecòo (ôaéë COMMON), ãäe oíè äocòóïíû äëÿ ècïoëüçoâaíèÿ.
Taê êaê ìíoãèe âûçûâaþùèe äpóã äpóãa ïoäïpoãpaììû pacïoëoæeíû â paçëè÷íûx áaíêax ïaìÿòè, èìeþòcÿ ïoäïpoãpaììû (JUMPS), êoòopûe ïepeêëþ÷aþò áaíê ïaìÿòè, âûçûâaþò òoò èëè èíoé áëoê è ïepeêëþ÷aþò áaíê íaçaä.